#ifndef MT9M034_REGS_H
#define MT9M034_REGS_H
#include "ArduCAM.h"
#include <avr/pgmspace.h>

//const struct sensor_reg MT9M034_RAW PROGMEM =
//{
//{0x3028, 0x0010},	// ROW_SPEED = 16
//{0x302E, 0x0002},		// PRE_PLL_CLK_DIV = 2 (N)
//{0x3030, 0x0028},		// PLL_MULTIPLIER = 40 (M)
//{0x302C, 0x0001},		// VT_SYS_CLK_DIV = 1  (P1)
//{0x302A, 0x0010},		// VT_PIX_CLK_DIV = 16 (P2)
//{0x302E, 0x0002},		// PRE_PLL_CLK_DIV = 2 (N)
//{0x3030, 0x002C},		// PLL_MULTIPLIER = 44 (M)
//{0x302C, 0x0001},		// VT_SYS_CLK_DIV = 1  (P1)
//{0x302A, 0x0010},		// VT_PIX_CLK_DIV = 16 (P2)
//{0x3032, 0x0000},		// DIGITAL_BINNING = 0
//{0x30B0, 0x0080},		// DIGITAL_TEST = 128
//{0x301A, 0x10DC}, 		// RESET_REGISTER = 4312
//{0x301A, 0x1980}, 		// R0x301A[12] = 1, R0x301A[11] = 1, R0x301A[8] = 1, R0x301A[7] = 1, R0x301A[2] = 0
//{0x300C, 0x0672}, 		// LINE_LENGTH_PCK = 1650
//{0x3002, 0x0000}, 		// Y_ADDR_START = 0
//{0x3004, 0x0000}, 		// X_ADDR_START = 0
//{0x3006, 0x03BF}, 		// Y_ADDR_END = 959
//{0x3008, 0x04FF}, 		// X_ADDR_END = 1279
//{0x300A, 0x03DE}, 		// FRAME_LENGTH_LINES = 990
//{0x3012, 0x0064}, 		// COARSE_INTEGRATION_TIME = 100
//{0x3014, 0x00C0}, 		// FINE_INTEGRATION_TIME = 192
//{0x30A6, 0x0001}, 		// Y_ODD_INC = 1
//{0x308C, 0x0000}, 		// Y_ADDR_START_CB = 0
//{0x308A, 0x0000}, 		// X_ADDR_START_CB = 0
//{0x3090, 0x03BF}, 		// Y_ADDR_END_CB = 959
//{0x308E, 0x04FF}, 		// X_ADDR_END_CB = 1279
//{0x30AA, 0x03DE}, 		// FRAME_LENGTH_LINES_CB = 990
//{0x3016, 0x0064}, 		// COARSE_INTEGRATION_TIME_CB = 100
//{0x3018, 0x00C0}, 		// FINE_INTEGRATION_TIME_CB = 192
//{0x30A8, 0x0001}, 		// Y_ODD_INC_CB = 1
//{0x3040, 0x0000}, 		// READ_MODE = 0
//{0x3064, 0x1982}, 		// EMBEDDED_DATA_CTRL = 6530
//{0x31C6, 0x8000}, 		// HISPI_CONTROL_STATUS = 32768 (DEFAULT)
//{0xffff, 0xffff},
//};
//#endif


//{0x3056, 33    }
//{0x3058, 50    }
//{0x305a, 50    }
//{0x305c, 33    }
//{


const struct sensor_reg MT9M034_RAW[]  PROGMEM=
{
	{0x3028, 0x0010},	// ROW_SPEED = 16
{0x302E, 0x0002},		// PRE_PLL_CLK_DIV = 2 (N)
{0x3030, 0x0028},		// PLL_MULTIPLIER = 40 (M)
{0x302C, 0x0001},		// VT_SYS_CLK_DIV = 1  (P1)
{0x302A, 0x0010},		// VT_PIX_CLK_DIV = 16 (P2)
{0x302E, 0x0002},		// PRE_PLL_CLK_DIV = 2 (N)
{0x3030, 0x002C},		// PLL_MULTIPLIER = 44 (M)
{0x302C, 0x0001},		// VT_SYS_CLK_DIV = 1  (P1)
{0x302A, 0x0010},		// VT_PIX_CLK_DIV = 16 (P2)
{0x3032, 0x0000},		// DIGITAL_BINNING = 0
{0x30B0, 0x0080},		// DIGITAL_TEST = 128
{0x301A, 0x10DC}, 		// RESET_REGISTER = 4312
{0x301A, 0x1980}, 		// R0x301A[12] = 1, R0x301A[11] = 1, R0x301A[8] = 1, R0x301A[7] = 1, R0x301A[2] = 0
{0x300C, 0x0672}, 		// LINE_LENGTH_PCK = 1650
{0x3002, 0x0000}, 		// Y_ADDR_START = 0
{0x3004, 0x0000}, 		// X_ADDR_START = 0
{0x3006, 0x03BF}, 		// Y_ADDR_END = 959
{0x3008, 0x04FF}, 		// X_ADDR_END = 1279
{0x300A, 0x03DE}, 		// FRAME_LENGTH_LINES = 990
{0x3012, 0x1000}, 		// COARSE_INTEGRATION_TIME = 100
{0x3014, 0x00C0}, 		// FINE_INTEGRATION_TIME = 192
{0x30A6, 0x0001}, 		// Y_ODD_INC = 1
{0x308C, 0x0000}, 		// Y_ADDR_START_CB = 0
{0x308A, 0x0000}, 		// X_ADDR_START_CB = 0
{0x3090, 0x03BF}, 		// Y_ADDR_END_CB = 959
{0x308E, 0x04FF}, 		// X_ADDR_END_CB = 1279
{0x30AA, 0x03DE}, 		// FRAME_LENGTH_LINES_CB = 990
{0x3016, 0x0064}, 		// COARSE_INTEGRATION_TIME_CB = 100
{0x3018, 0x00C0}, 		// FINE_INTEGRATION_TIME_CB = 192
{0x30A8, 0x0001}, 		// Y_ODD_INC_CB = 1
{0x3040, 0x0000}, 		// READ_MODE = 0
{0x3064, 0x1982}, 		// EMBEDDED_DATA_CTRL = 6530
{0x31C6, 0x8000}, 		// HISPI_CONTROL_STATUS = 32768 (DEFAULT)
{0xffff, 0xffff},
};     
#endif   